import _config from './request.js'; // 导入私有配置
import _common from './common.js'; // 导入私有配置
import store from './store.js'

export default function $http(options, state = false) {
	
	// 设置token
	let loginInfo = uni.getStorageSync('loginInfo')
	_config.request.header.token = loginInfo.token
	//_config.header
	options.url = _config.request.url + options.url;
	return new Promise((resolve, reject) => {
		// 进行url字符串拼接
		// 拦截请求
		_config.request.complete = (response) => {
			//  request請求访问成功
			if (response.statusCode === 200) {
				if (response.data.status == 1401){
					if (store.state.showModel != 'vip') {
						store.commit('setShowModel', 'vip')
					}
					// _common.not_VIP_pop() // 未开通VIP 提示弹框
				} else if (response.data.status == 999){
					if (store.state.showModel != 'login') {
						store.commit('setShowModel', 'login')
					}
					// if(_common.not_login_show) {
					// 	_common.not_login_show = false
					// 	return _common.not_login_pop() // 未登录提示
					// }
				} else if (store.state.showModel != 'none') {
					store.commit('setShowModel', 'none')
				}
				// 接口请求成功
				resolve(response.data);
			} else {
				// console.log(response);
				// 处理catch 请求，不在本页面之外处理，统一在这里处理
				if(options.handle){
					reject(response)
				}else{
					try {
						Promise.reject(response).catch(err => {
						// console.error(err);  
						_page_error(response.statusCode || response.errMsg);
						});
					} catch (e) {
						// console.log(e)
					}
				}
			}

		}
		// 开始请求
		uni.request(Object.assign({},_config.request, options));
		
	})
}

// 接口錯誤
function _error(err, msg = '') {
  switch (err) {
    case 400:
      console.error(msg)
      // 错误码400的处理方式
      break;
  }
}
// request 錯誤
function _page_error(err) {
  switch (err) {
	case 401:
		// 错误码404的处理方式
		console.error("请求被拒绝")
		break;
    case 404:
		// 错误码404的处理方式
		console.error("没有找到页面")
		break;
    case 405:
		console.error("错误的请求")
		break;
	case 500:
		console.error("内部服务器错误")
		break;
  }
}